const CryptoJS = require("crypto-js")
const bcrypt = require("bcryptjs")
// 通过是否传入数据库中的hash值 判断是登录还是注册 返回值不同
function decode(password,accessPassword){
  // 密钥
  let key = "ytq485515849"
  // console.log("接收"+password);
  // 对密码的特殊字符解码
  let decodePassword = decodeURIComponent(password)
  // console.log("解码"+decodePassword);
  // 对密码进行解密
  let decryptPassword = CryptoJS.TripleDES.decrypt(decodePassword,key).toString()
  // console.log("解密"+decryptPassword);
  if(!accessPassword){
    // 这是一个控制 hash 算法开销的参数 参数越大计算的 hash值越复杂 要破解起来越困难，时间也会越长
    let salt = bcrypt.genSaltSync(10)
    // 返回hash值
    return bcrypt.hashSync(decryptPassword, salt)
  }else {
    // console.log(accessPassword);
    // 解密后的密码 和数据库中的hash值进行比较 返回一个布尔值
    return bcrypt.compareSync(decryptPassword,accessPassword)
  }
}

module.exports = decode